home *** CD-ROM | disk | FTP | other *** search
- -- circular patroling behaviour -
- -- Created by Sten; 18092002
- --------------------------
-
-
- AIBehaviour.IGPatrolCircle = {
- Name = "IGPatrolCircle",
- XTime = 0,
- PathStep = 0,
- Anim = "",
- Delay = 0,
- count=0,
-
- RandomDelay = {"AIS_Delay_1","AIS_Delay_2","AIS_Delay_3","AIS_Delay_4"},
- Status = "choose",
-
- -- SYSTEM EVENTS -----
-
- ---------------------------------------------
- OnSpawn = function(self,entity )
- self.PathStep = entity.Properties.pathstart - 1;
- self:AISF_PatrolPath(entity,sender);
- end,
- ---------------------------------------------
- OnSelected = function(self,entity )
- end,
- ---------------------------------------------
- OnActivate = function(self,entity )
- -- self:AISF_PatrolPath(entity,sender);
- end,
- ---------------------------------------------
- OnNoTarget = function( self,entity )
- end,
- ---------------------------------------------
- OnPlayerSeen = function( self,entity )
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnEnemySeen = function(self,entity )
- end,
- ---------------------------------------------
- OnEnemyMemory = function(self,entity )
- end,
- ---------------------------------------------
- OnInterestingSoundHeard = function(self,entity )
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnThreateningSoundHeard = function( self,entity )
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnReload = function(self,entity )
- end,
- ---------------------------------------------
- OnClipNearlyEmpty = function(self,entity )
- end,
- ---------------------------------------------
- OnGroupMemberDied = function(self, entity, sender)
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnNoHidingPlace = function(self, entity, sender )
- end,
- ---------------------------------------------
- OnReceivingDamage = function ( self, entity, sender)
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnBulletRain = function ( self, entity, sender)
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ---------------------------------------------
- OnPlayerSeenByGroupMember = function ( self, entity, sender)
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ----------------------------------------------------FUNCTIONS -------------------------------------------------------------
- AISF_CallForHelp = function (self, entity, sender)
- entity:SelectPipe(0,"force_reevaluate");
- end,
- ------------------------------------------------------------------------
- AISF_GoOn = function (self, entity, sender)
- if (self.count>0) then
- self.count=self.count-1;
- if (self.Status == "delay") then
- entity:SelectPipe(0,self.RandomDelay[random(1,(getn(self.RandomDelay)))]);
- if (random(1,3)==1) then
- self.Status = "choose";
- else self.Status = "look";
- end
- elseif (self.Status == "choose") then
- entity.cnt.AnimationSystemEnabled = 0;
- self.Status = "look";
- local MyAnim = IdleManager:GetIdle();
- self.Anim = MyAnim.Name;
- self.Delay = MyAnim.duration;
- -----
- AI:CreateGoalPipe(self.Anim.."AIS_IdleDelay");
- AI:PushGoal(self.Anim.."AIS_IdleDelay","timeout",1,self.Delay);
- AI:PushGoal(self.Anim.."AIS_IdleDelay","signal",0,1,"AISF_GoOn",0);
- -----
- entity:StartAnimation(0,self.Anim);
- entity:SelectPipe(0,self.Anim.."AIS_IdleDelay");
- elseif (self.Status == "look") then
- entity.cnt.AnimationSystemEnabled = 1;
- self.Status = "delay";
- if (random(1,2)==1) then
- entity:SelectPipe(0,"AIS_LookLeft");
- else
- entity:SelectPipe(0,"AIS_LookRight");
- end
- end
- else
- self:AISF_PatrolPath(entity,sender);
- end
- end,
- ------------------------------------------------------------------------
- AISF_PatrolPath = function (self, entity, sender)
- entity.cnt.AnimationSystemEnabled = 1;
- self.count = random(4,7);
-
- self.PathStep = self.PathStep + 1;
- --System:LogToConsole(entity:GetName().." .. Path Step"..self.PathStep);
-
- if (self.PathStep == entity.Properties.pathsteps) then
- self.PathStep = 0;
- end
- entity:SelectPipe(0,"JobPatrolIndoor",entity.Properties.pathname..self.PathStep);
- end,
- ------------------------------------------------------------------------
- }